package com.yuandian.bpm.bi.modules.quartz.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuandian.bpm.bi.modules.quartz.vo.ConfReportRunningTaskVo;
import com.yuandian.bpm.bi.modules.quartz.vo.ConfReportTaskInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 报表定时任务表-Mapper接口
 * @author zfsn
 * @date 2023-6-19
 */
@Mapper
public interface ConfReportTaskInfoMapper {

	/**
	 * 获取任务信息列表
	 * @param page	分页参数
	 * @param confReportTaskInfo	任务信息对象
	 * @return	任务信息列表
	 */
	Page<ConfReportTaskInfo> getTaskInfoList(Page<ConfReportTaskInfo> page,
											 @Param("params") ConfReportTaskInfo confReportTaskInfo);


	/**
	 * 获取任务信息列表
	 * @param page	分页参数
	 * @param confReportTaskInfo	任务信息对象
	 * @return	任务信息列表
	 */
	List<ConfReportTaskInfo> getTaskInfoNoPageList(@Param("params") ConfReportTaskInfo confReportTaskInfo);


	/**
	 * 获取任务信息列表-执行中的任务
	 * @param page	分页参数
	 * @param confReportTaskInfo	任务信息对象
	 * @return	任务信息列表
	 */
	Page<ConfReportRunningTaskVo> getRunningTaskList(Page<ConfReportRunningTaskVo> page,
												@Param("params") ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 保存任务信息
	 * @param confReportTaskInfo 	任务信息对象
	 */
	int saveTaskInfo(ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 更新任务信息
	 * @param confReportTaskInfo 	任务信息对象
	 */
	int updateTaskInfo(ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 获取指定参数的任务数量
	 * @param confReportTaskInfo 任务信息对象
	 * @return
	 */
	int getTaskCount(@Param("params") ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 根据ID获取任务信息
	 * @param confReportTaskInfo 任务信息对象
	 * @return
	 */
	ConfReportTaskInfo getOneTaskInfo(@Param("params") ConfReportTaskInfo confReportTaskInfo);

	/**
	 * 批量删除任务信息
	 * @param confReportTaskInfo 任务信息对象
	 * @return	影响行数
	 */
	int deleteTaskByIds(@Param("params") ConfReportTaskInfo confReportTaskInfo);


	/**
	 * 任务管理-启停任务
	 * @param ids 任务ID
	 * @param state 状态
	 * @return	影响行数
	 */
	int startOrStopTask(@Param("ids") List<Integer> ids, @Param("state") int state);

	/**
	 * 全局配置-运行失败提醒-平台提醒
	 * @param state 状态 0：不勾选平台提醒  1：勾选平台提醒
	 * @return 通用返回对象 suspend
	 */
	void platformReminderHandle(@Param("state") Integer state);

	/**
	 * 获取 全局配置-运行失败提醒-平台提醒
	 * @param state 状态 0：不勾选平台提醒  1：勾选平台提醒
	 * @return 通用返回对象 suspend
	 */
	Map<String, Object> getPlatformReminderState();
}
